package test3;

import java.text.DecimalFormat;

public class Main {

    public static void main(String[] args) {

    }
}
abstract class Person
{
    private String zhiye;
    private String name;
    private int age;
    private boolean gender;

    public Person() {
    }

    public Person(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    public String toString()
    {
        String str1=String.valueOf(age);
        String str2=String.valueOf(gender);
        return name+"-"+str1+"-"+str2;
    }
    public boolean equals(Object obj)
    {

        Person p = (Person)obj;
        if(this.name.equals(p.name) && this.age==p.age && this.gender == p.gender) return true;
        return false;
    }

    public String getZhiye() {
        return zhiye;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public boolean isGender() {
        return gender;
    }
}
class Student extends Person
{
    private  String stuNo;
    private  String clazz;

    public Student(String name, int age, boolean gender, String stuNo, String clazz) {
        super(name, age, gender);
        this.stuNo = stuNo;
        this.clazz = clazz;
    }

    public String toString()
    {
        return super.toString()+"-"+stuNo+"-"+clazz;
    }
    public boolean equals(Object obj)
    {
        Student s = (Student) obj;
        if(super.equals(s)) {
            if(this.stuNo.equals(s.stuNo) && this.clazz.equals(s.clazz))
                return true;
        }
        return false;
    }

    public String getStuNo() {
        return stuNo;
    }

    public String getClazz() {
        return clazz;
    }
}
class Company
{
    private String name;

    public Company(String name) {
        this.name = name;
    }
    public String toString()
    {
        return name;
    }
    public boolean equals(Object obj)
    {
        Company com = (Company)obj;
        if(this.name.equals(com.name)) return true;
        return false;
    }

    public String getName() {
        return name;
    }
}
class Employee extends Person
{
    private Company company;
    private double salary;

    public Company getCompany() {
        return company;
    }

    public double getSalary() {
        return salary;
    }

    public Employee(String name, int age, boolean gender, Company company, double salary) {
        super(name, age, gender);
        this.company = company;
        this.salary = salary;
    }

    public String toString()
    {
        String format=String.valueOf(salary);
        return this.toString()+"-"+company.toString()+"-"+format;
    }
    public boolean equals(Object obj)
    {
        if (obj == null) {
            return false;
        }
        Employee emm = (Employee)obj;
        if(super.equals(emm))
        {
            DecimalFormat p = new DecimalFormat("#.#");
            return this.company.equals(emm.company) && p.format(this.salary).equals(p.format(emm.salary));
        }
        return false;
    }

}

//import java.text.DecimalFormat;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Scanner;
//
//public class Main {
//
//    public static void main(String[] args) {
//        Scanner cin = new Scanner(System.in);
//        List<Person> personList = new ArrayList<>(30);
//        List<Person> stuList = new ArrayList<>(30);
//        List<Person> empList = new ArrayList<>(30);
//        String s;
//        while(true)
//        {
//            s = cin.next();
//            if(s.equals("s"))
//            {
//                String name = cin.next();
//                int age = cin.nextInt();
//                boolean gender = cin.nextBoolean();
//                String stuNo = cin.next();
//                String clazz = cin.next();
//                personList.add(new Student(s,name,age,gender,stuNo ,clazz));
//            }
//            else if(s.equals("e"))
//            {
//                String nameString = cin.next();
//                int age = cin.nextInt();
//                boolean gender = cin.nextBoolean();
//                double salary = cin.nextDouble();
//                String company = cin.next();
//                Company company2 = new Company(company);
//                if ("null".equals(company)) {
//                    personList.add(new Employee(s,nameString, age, gender, new Company("null"), salary));
//                } else {
//                    personList.add(new Employee(s,nameString, age, gender, new Company(company), salary));
//                }
//            }
//            else
//            {
//                break;
//            }
//        }
//        personList.sort((obj1, obj2) -> {
//            if (obj1.getName().compareTo(obj2.getName()) < 0) {
//                return -1;
//            } else if (obj1.getName().compareTo(obj2.getName()) > 0) {
//                return 1;
//            } else {
//                return obj1.getAge() - obj2.getAge();
//            }
//        });
//        for (Person obj : personList) {
//            System.out.println(obj.toString());
//        }
//        String sExit = "exit";
//        String sReturn = "return";
//        s = cin.next();
//        while(true) {
//            if(s.equals("return")||s.equals("exit")) {
//                break;
//            }else {
//                boolean flag1=true;
//                boolean flag2=true;
//                for(int i=0;i<personList.size();i++) {
//                    if(personList.get(i).toString().indexOf("Student")>=0) {
//                        if(stuList.size()==0) {
//                            stuList.add(personList.get(i));
//                        }
//                        for(int j=0;j<stuList.size();j++) {
//                            if(personList.get(i).equals(stuList.get(j))){
//                                flag1=false;
//                            }
//                        }
//                        if(flag1) {
//                            stuList.add(personList.get(i));
//
//                        }
//                        flag1=true;
//                    }else {
//                        if(empList.size()==0) {
//                            empList.add(personList.get(i));
//                        }
//                        for(int j=0;j<empList.size();j++) {
//                            if(personList.get(i).equals(empList.get(j))){
//                                flag2=false;
//                            }
//                        }
//                        if(flag2) {
//                            empList.add(personList.get(i));
//                        }
//                        flag2=true;
//                    }
//                }
//                System.out.println("stuList");
//                for(int i=0;i<stuList.size();i++) {
//
//                    System.out.println(stuList.get(i).toString());
//
//                }
//                System.out.println("empList");
//                for(int i=0;i<empList.size();i++) {
//
//                    System.out.println(empList.get(i).toString());
//
//                }
//                break;
//            }
//        }
//    }
//}
//class Person{
//    private String zhiye;
//    private String name;
//    private int age;
//    private boolean gender;
//    public Person(String zhiye,String name, int age, boolean gender)
//    {
//        this.zhiye = zhiye;
//        this.name = name;
//        this.age = age;
//        this.gender = gender;
//    }
//    public String toString()
//    {
//        return name+"-"+age+"-"+gender;//返回"name-age-gender"格式的字符串
//    }
//    public boolean equals(Object obj)
//    {
//        Person p = (Person)obj;
//        if(this.name.equals(p.name) && this.age==p.age && this.gender == p.gender) return true;
//        return false;
//        //比较name、age、gender,都相同返回true,否则返回false
//    }
//    public String getZhiye() {
//        return zhiye;
//    }
//    public void setZhiye(String zhiye) {
//        this.zhiye = zhiye;
//    }
//    public String getName() {
//        return name;
//    }
//    public void setName(String name) {
//        this.name = name;
//    }
//    public int getAge() {
//        return age;
//    }
//    public void setAge(int age) {
//        this.age = age;
//    }
//    public boolean isGender() {
//        return gender;
//    }
//    public void setGender(boolean gender) {
//        this.gender = gender;
//    }
//
//}
//class Student extends Person{
//    private String stuNo;
//    private String clazz;
//    public Student(String zhiye,String name, int age, boolean gender, String stuNo, String clazz)
//    {
//        super(zhiye,name, age, gender);
//        this.stuNo = stuNo;
//        this.clazz = clazz;
//    }
//    @Override
//    public String toString() {
//        return "Student:"+super.toString()+"-"+stuNo+"-"+clazz;
//    }
//    @Override
//    public boolean equals(Object obj) {
//        Student st = (Student) obj;
//        if(super.equals(st)) {
//            if(this.stuNo.equals(st.stuNo) && this.clazz.equals(st.clazz)) return true;
//        }
//        return false;
//    }
//}
//class Company{
//    String name;
//    public Company(String name)
//    {
//        this.name = name;
//    }
//    public String toString()
//    {
//        return name;//直接返回name
//    }
//    public boolean equals(Object obj)
//    {
//        Company com = (Company)obj;
//        if(this.name.equals(com.name)) return true;//name相同返回true
//        return false;
//    }
//}
//class Employee extends Person{
//    Company company;
//    double salary;
//    public Employee(String zhiye,String name, int age, boolean gender, Company company, double salary)
//    {
//        super(zhiye,name, age, gender);
//        this.company =company;
//        this.salary = salary;
//    }
//    public String toString()
//    {
//        return "Employee:"+super.toString()+"-"+company.toString()+"-"+salary;//返回toString-company-salary"格式的字符串
//    }
//    public boolean equals(Object obj)
//    {
//        if (obj == null) {
//            return false;
//        }
//        Employee emm = (Employee)obj;
//        if(super.equals(emm))
//        {
//            DecimalFormat p = new DecimalFormat("#.#");//数值按“#.#”格式输出，小数点后保留一位
//            return this.company.equals(emm.company) && p.format(this.salary).equals(p.format(emm.salary));
//        }
//        return false;
//    }
//}